package com.zm.springcloudsentinel.controller.exceptionController;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 并非sentinel报的流量控制等异常
 * 而是运行时异常的兜底处理
 * 这里也可以以将兜底方法写在其他类中，参数和返回值也是需要一致，以及注解也可以配置兜底方法所在类，用法语流控降级异常（BlockException）一致
 */
@RestController
@RequestMapping("/fb")
public class RuntimeExceptionFallbackController {

    @SentinelResource(fallback = "fallbackAno1")
    @RequestMapping("/ano1")
    public String runExFb(){
        int i=10/0;
        return "success";
    }

    public String fallbackAno1(Throwable throwable){
        return "sentinel提供的处理资源异常的fallback:"+throwable.getMessage();
    }
}
